204
19511
Haluan poistaa haaran sekä paikallisesti että etänä.
Epäonnistuneet yritykset poistaa etähaara
$ git -haara -d kaukosäätimet / alkuperä / virhekorjaus
virhe: haaraa 'remotes / origin / bugfix' ei löydy.
$ git -haara -d alkuperä / virhekorjaus
virhe: haaraa 'origin / bugfix' ei löydy.
$ git -haara -rd alkuperä / virhekorjaus
Poistettiin haaran etäinen alkuperä / virhekorjaus (oli 2a14ef7).
$ git push
Kaikki ajan tasalla
$ git pull
Lähettäjä github.com: gituser/gitproject
* [uusi haara] virhekorjaus -> alkuperä / virhekorjaus
Jo ajan tasalla.
Mitä minun pitäisi tehdä eri tavalla poistaaksesi kaukosäätimet / alkuperä / virhekorjaukset haarasta sekä paikallisesti että etänä? 
1
2
Seuraava
Tiivistelmä
$ git push -d  
$ git -haara -d 
Huomaa, että useimmissa tapauksissa etänimi on alkuperä.
Tällöin sinun on käytettävä komentoa niin.
$ git push -d alkuperä 
Poista paikallinen haara
Poista paikallinen sivuliike jollakin seuraavista tavoista:
$ git haara -d haaran_nimi
$ git haara -D haaran_nimi
Huomaa: -d -vaihtoehto on aliakseksi --delete, joka poistaa haaran vain, jos se on jo yhdistetty kokonaan sen ylävirran haaraan. Voit käyttää myös -D: tä, joka on aliakseksi --delete --forcelle, joka poistaa haaran "riippumatta sen yhdistetystä tilasta". [Lähde: man git-branch]
Huomaa myös, että git-haara -d haaran_nimi epäonnistuu, jos olet tällä hetkellä
haarassa, jonka haluat poistaa. Viesti alkaa
virhe: haaraa haaran_nimi ei voida poistaa. Jos on, vaihda ensin
johonkin muuhun haaraan, esimerkiksi: git checkout master.
Poista etähaara [Päivitetty 8.9.2017]
Git v1.7.0: sta alkaen voit poistaa etähaaran käyttämällä
$ git push  - poista 
mikä voi olla helpompi muistaa kuin
$ git push : 
joka lisättiin Git v1.5.0: een "etähaaran tai tunnisteen poistamiseksi".
Alkaen Git v2.8.0: sta, voit myös käyttää git push -d -vaihtoehtoa aliaksena --delete.
Siksi asentamasi Git-versio sanelee, onko sinun käytettävä helpompaa vai vaikeampaa syntaksia.
Poista etähaara [alkuperäinen vastaus 5. tammikuuta-2010]
Scott Chaconin Pro Gitin luvusta 3:
Etähaarojen poistaminen
Oletetaan, että olet valmis etähaaran kanssa - sanotaan, että sinä ja yhteistyökumppanisi ovat valmiit käyttämään ominaisuutta ja yhdistäneet sen kaukosäätimen päähaaraan (tai mihin tahansa haaraan vakaa koodirivisi on). Voit poistaa etähaaran käyttämällä melko tylpää syntaksi git push [etätunnus]: [haara]. Jos haluat poistaa palvelinkorjauksen haaran palvelimelta, suoritat seuraavaa:
$ git push -alku: serverfix
Osoitteeseen git@github.com: schacon / simplegit.git
- [poistettu] palvelinkorjaus
Puomi. Ei enää haaroja palvelimellasi. Haluat ehkä kuulla tämän sivun, koska tarvitset kyseisen komennon, ja unohdat todennäköisesti syntaksin. Tapa muistaa tämä komento on palauttaa mieleen git push [etätunnus] [paikallinen haara]: [kauko-haara] -syntaksi, jonka kävelimme hieman aiemmin. Jos jätät [paikallinen sivuliike] -osan pois, sanot periaatteessa: "Älä ota mitään puolelleni ja tee siitä [etähanke]."
Annoin git push -alku: virhekorjaus ja se toimi kauniisti. Scott Chacon oli oikeassa - haluan koiran korvata kyseisen sivun (tai käytännössä koiran korvan vastaamalla tähän Stack Overflow -sivulla).
Sitten sinun tulisi suorittaa tämä muilla koneilla
# Hae muutokset kaikista kaukosäätimistä ja poista paikallisesti
# etäpoistettua haaraa / tunnistetta jne
# --kuumu tekee työn: -;
git nouto - kaikki - luumu
levittää muutoksia.
|
Matthew'n vastaus on hieno syrjäisten haarojen poistamiseksi, ja arvostan myös selitystä, mutta tehdäksesi yksinkertaisen eron näiden kahden komennon välillä:
Paikallisen haaran poistaminen koneeltasi:
git-haara -d {the_local_branch} (käytä -D sen sijaan pakottaaksesi haaran poistamisen tarkistamatta yhdistetyn tilan)
Etähaaran poistaminen palvelimelta:
git push -alku - poista {the_remote_branch}
Viite: Git: Poista haara (paikallinen tai etäinen)
|
Lyhyet vastaukset
Jos haluat tarkempia selityksiä seuraavista komennoista, katso pitkät vastaukset seuraavasta osasta.
Etähaaran poistaminen
git push -alku - poista  # Git-versio 1.7.0 tai uudempi
git push origin -d  # Lyhyempi versio (Git 1.7.0 tai uudempi)
git push -alku:  # Git-versiot, jotka ovat vanhempia kuin 1.7.0
Paikallisen sivuliikkeen poistaminen
git-haara - poista 
git branch -d  # Lyhyempi versio
git-haara -D  # Pakota poistamatta yhdistämättömät haarat
Paikallisen etäseurannan haaran poistaminen
git branch --delete --remotes  / 
git-haara -dr  /  # Lyhyempi
git fetch  --prune # Poista useita vanhentuneita etäseurannan haaroja
git hae  -p # Lyhyempi
Pitkä vastaus: Poistettavia haaroja on kolme!
Kun käsittelet haarojen poistamista sekä paikallisesti että etänä, pidä mielessä, että mukana on kolme eri haaraa:
Paikallinen haara X.
Etäkohteen haara X.
Paikallinen etäseurannan haarakohta / X, joka seuraa etähaaraa X.
Alkuperäinen käytetty juliste:
git-haara -rd alkuperä / virhekorjaus
Mikä vain poisti hänen paikallisen etähallinnan haaran alkuperän / virhekorjauksen, eikä varsinaisen etähaaran virhekorjauksen alkuperästä.
Tarvitset varsinaisen etähaaran poistamiseksi
git push -alku - poista virhekorjaus
Lisätiedot
Seuraavissa osissa kuvataan lisätietoja, jotka on otettava huomioon etä- ja etäseurannan haaroja poistettaessa.
Etähaarojen poistaminen työntämällä poistaa myös etäseurannan haarat
Huomaa, että etähaaran X poistaminen komentoriviltägit push -toiminnon käyttäminen poistaa myös paikallisen etäseurannan haaran alkuperän / X, joten vanhentunutta etäseurannan haaraa ei tarvitse karsia git-haulla --prune tai git fetch -p. Ei kuitenkaan haittaa, jos teet sen joka tapauksessa.
Voit varmistaa, että myös etäseurannan haaran alkuperä / X poistettiin suorittamalla seuraava:
# Näytä vain etäseurannan haarat
git-haara - kaukosäätimet
git-haara -r
# Tarkastele sekä tiukasti paikallisia että etäseurannan haaroja
git-haara - kaikki
git-haara -a
Vanhentuneen paikallisen etäseurannan haaran alkuperän karsiminen / X
Jos et poistanut etähaaraa X komentoriviltä (kuten yllä), paikallinen tietovarastosi sisältää edelleen (nyt vanhentuneen) etäseurannan haaran alkuperän / X. Näin voi käydä, jos poistat etähaaran esimerkiksi GitHubin verkkokäyttöliittymän kautta.
Tyypillinen tapa poistaa nämä vanhentuneet etäseurantahaarat (Git-versiosta 1.6.6 lähtien) on yksinkertaisesti suorittaa git-haku hakemistolla --prune tai lyhyempi -p. Huomaa, että tämä poistaa kaikki vanhentuneet paikalliset etäseurantahaarat kaikista etähaaroista, joita kaukosäätimessä ei enää ole:
git hae alkuperä - luumu
git hae alkuperä -p # Lyhyempi
Tässä on asiaankuuluva lainaus 1.6.6-julkaisutiedoista (painopiste minun):
"git fetch" oppinut - kaikki ja - useita vaihtoehtoja, joiden suorittamiseksi hakeminen on suoritettava
monet arkistot ja --prune -vaihtoehto etäseurannan poistamiseksi
oksat, jotka olivat vanhentuneet. Nämä tekevät "git-etäpäivityksen" ja "git
karsia "vähemmän välttämätöntä (kauko - ohjainta ei ole tarkoitus poistaa)
päivitä "eikä" kauko-luumu ".
Vaihtoehto vanhentuneille etäseurannan haaroille automaattisen karsinnan yllä
Vaihtoehtoisesti sen sijaan, että karsit vanhentuneita paikallisia etäseurannan haaroja git fetch -p: n kautta, voit välttää ylimääräisen verkkotoiminnon tekemisen poistamalla haaran manuaalisesti --remote- tai -r-lipuilla:
git-haara --poista - kaukosäädin alkuperä / X
git-haara -dr alkuperä / X # Lyhyempi
Katso myös
git-branch (1) Manuaalinen sivu.
git-fetch (1) Manuaalinen sivu.
Pro Git § 3.5 Git-haaroitus - etähaarat.
|
Vaiheet sivuliikkeen poistamiseksi:
Etähaaran poistaminen:
git push -alku - poista 
Voit poistaa paikallisen haaran kolmella tavalla:
1: git-haara -D 
2: git branch --delete --force  # Sama kuin -D
3: git branch --delete  # Virhe yhdistämisen yhteydessä
Selitä: OK, selitä vain mitä täällä tapahtuu!
Yksinkertaisesti tee git push -alku - poista poistaaksesi vain etäkonttorin, lisää haaran nimi loppuun ja tämä poistaa ja työntää sen samanaikaisesti ...
Git-haara -D, joka yksinkertaisesti poistaa vain paikallisen haaran! ...
-D tarkoittaa --delete --force, joka poistaa haaran, vaikka sitä ei olisikaan yhdistetty (pakota poisto), mutta voit myös käyttää -d, joka tarkoittaa --delete, joka heijastaa haaran yhdistämistilan virheen ...
Luon myös alla olevan kuvan näyttämään vaiheet:
|
Voit käyttää seuraavaa myös etähaaran poistamiseen
git push --poista alkuperäisen palvelimen korjaus
Joka tekee saman asian kuin
git push -alku: serverfix
mutta se voi olla helpompi muistaa.
|
Vinkki: Kun poistat haarat käyttämällä
git branch -d  # Poistaa paikallisen haaran
tai
git push -alku:  # Poistaa etähaaran
vain viitteet poistetaan. Vaikka haara todella poistetaan kaukosäätimestä, viitteet siihen ovat edelleen tiimisi jäsenten paikallisissa arkistoissa. Tämä tarkoittaa, että muille tiimin jäsenille poistetut oksat ovat edelleen näkyvissä, kun he tekevät git-haaran -a.
Tämän ratkaisemiseksi tiimisi jäsenet voivat karsia poistetut oksat
git kauko-luumu 
Tämä on tyypillisesti git-kauko-ohjelmaa.
|
Jos haluat poistaa haaran, maksa ensin muu haara kuin poistettava haara.
git checkout other_than_branch_to_be_deleted
Paikallisen sivuliikkeen poistaminen:
git-haara -D branch_to_be_deleted
Etähaaran poistaminen:
git push -alku - poista haara_to_be_poistettu
|
git-haara -D 
git push -alku: 
|
Tämä on yksinkertaista: Suorita vain seuraava komento:
Jos haluat poistaa Git-haaran sekä paikallisesti että etänä, poista ensin paikallinen haara tällä komennolla:
git-haara -d esimerkki
(Tässä esimerkissä on sivuliikkeen nimi.)
Ja sen jälkeen poista etähaara tällä komennolla:
git push -alku: esimerkki
|
Se on hyvin yksinkertaista:
Etähaaran poistaminen
git push -d alkuperä 
Tai
git push -alku: 
Paikallisen sivuliikkeen poistaminen pakolla
git-haara -D 
|
Toinen lähestymistapa on:
git push - luumu alkuperä
VAROITUS: Tämä poistaa kaikki etähaarat, joita ei ole paikallisesti. Tai kattavammin,
git push - peili
tekee tehokkaasti etätietovaraston näyttävän arkiston paikalliselta kopiolta (paikalliset päät, kaukosäätimet ja tunnisteet ovat peilattuina kauko-ohjaimessa).
|
Käytän seuraavia Bash-asetuksissani:
alias git-shoot = "git pushalkuperä --poista "
Sitten voit soittaa:
git-shoot-haaranimi
|
Poista paikallisesti:
Voit poistaa paikallisen konttorin käyttämällä:
git-haara -d 
Poista haara väkisin käyttämällä -D: n sijasta -d.
git-haara -D 
Poista etänä:
On olemassa kaksi vaihtoehtoa:
git push -alku: haaranimi
git push -alku - poista haaranimi
Ehdotan, että käytät toista tapaa, koska se on intuitiivisempi.
|
Tammikuusta 2013 lähtien GitHub sisällytti Poista haara -painikkeen jokaisen haaran viereen "Oksat" -sivullesi.
Asiaankuuluva blogiviesti: Luo ja poista haaroja
|
Jos haluat suorittaa molemmat vaiheet yhdellä komennolla, voit tehdä sille aliaksen lisäämällä alla olevan ~ / .gitconfig-tiedostoon:
[alias]
rmbranch = "! f () {git branch -d $ {1} && git push origin --delete $ {1};}; f"
Vaihtoehtoisesti voit lisätä tämän globaaliin kokoonpanoon komentoriviltä
git config --global alias.rmbranch \
'! f () {git branch -d $ {1} && git push origin --delete $ {1}; }; f '
HUOMAUTUS: Jos käytät -d (pieni d), haara poistetaan vain, jos se on yhdistetty. Jos haluat pakottaa poiston tapahtumaan, sinun on käytettävä -D (isot kirjaimet D).
|
Haaran poistaminen paikallisesti ja etänä
Kassalle päähaara - git kassan päällikkö
Poista etähaara - git push -alku - poista 
Poista paikallinen haara - git branch --delete 
|
Voit tehdä tämän myös käyttämällä git-kauko-ohjelmaa
$ git kauko-luumu alkuperä
Leikkauksen alkuperä
URL-osoite: git@example.com/ourourepo.git
* [karsittu] alkuperä / jotkut oksat
Se leikkaa ja poistaa etäseurannan haarat git branch -r -luettelosta.
|
Muiden vastausten lisäksi käytän usein git_remote_branch-työkalua. Se on ylimääräinen asennus, mutta se antaa sinulle kätevän tavan olla vuorovaikutuksessa etäkonttoreiden kanssa. Poista tässä tapauksessa:
grb poista haara
Huomaan, että käytän myös julkaisu- ja seurantakomentoja melko usein.
|
Yhden linjan komento poistaa sekä paikallinen että kauko-ohjain:
D = haaran nimi; git-haara -D $ D; git push -alku: $ D
Tai lisää alla oleva alias ~ / .gitconfig-tiedostoosi. Käyttö: git kill branch-name
[alias]
kill = "! f () {git-haara -D \" $ 1 \ "; git push -alku --poista \" $ 1 \ ";}; f"
|
Haarojen poistaminen
Oletetaan, että työmme haaran "yhteydenottolomakkeella" on tehty ja olemme jo integroineet sen "masteriin". Koska emme enää tarvitse sitä, voimme poistaa sen (paikallisesti):
$ git -haara -d-yhteydenottolomake
Ja etähaaran poistamiseksi:
git push -alku - poista yhteydenottolomake
|
Poista etähaara
git push -alku: 
Poista paikallinen haara
git-haara -D 
Poista paikallisen haaran vaiheet:
kassalla toiseen sivukonttoriin
poista paikallinen haara
|
Yksinkertaisesti sanoa:
git-haara -d 
git push -alku: 
|
git push -alku - poista 
on helpompi muistaa kuin
git push -alku: branchName
|
Nyt voit tehdä sen GitHub Desktop -sovelluksella.
Sovelluksen käynnistämisen jälkeen
Napsauta haaran sisältävää projektia
Vaihda haaraan, jonka haluat poistaa
Valitse "Branch" -valikosta "Unpublish ...", jolloin haara poistetaan GitHub-palvelimista.
Valitse "Branch" -valikosta "Delete" branch_name "...", jotta haara poistetaan paikallisesta koneesta (AKA kone, jolla parhaillaan työskentelet)
|
Paikallinen poistaminen - (normaali)
git-haara -d my_branch
Jos haarasi on uudelleenkäynnistys- / yhdistämisvaiheessa ja sitä ei tehty oikein, se tarkoittaa, että saat virheen, uudelleenkäynnistys / yhdistäminen on käynnissä, joten siinä tapauksessa et voi poistaa haaraa.
Joten joko sinun on ratkaistava uudelleenlaskenta / yhdistäminen. Muussa tapauksessa voit pakottaa poistamisen käyttämällä
git-haara -D my_branch
Poista kauko-ohjaimella:
git push - poista alkuperä my_branch
Voit tehdä saman käyttämällä:
git push -alku: my_branch # Helppo muistaa, että molemmat tekevät saman.
Graafinen esitys:
|
Tämä ei toimi, jos sinulla on tunniste, jolla on sama nimi kuin kaukosäätimen haaralla:
$ git push -alku: branch-or-tag-name
virhe: dst refspec haara- tai taginimi vastaa useampaa kuin yhtä.
virhe: joitain viitteitä ei voitu lähettää osoitteeseen git@github.com: SomeName / some-repo.git
Siinä tapauksessa sinun on määritettävä, että haluat poistaa haaran, ei tagia:
git push -alku: refs / heads / branch-or-tag-name
Vastaavasti tagin poistaminen käyttämäsi haaran sijasta:
git push -alku: refs / tags / branch-or-tag-name
|
Monet muut vastaukset johtavat virheisiin / varoituksiin. Tämä lähestymistapa on suhteellisen typerä todiste, vaikka saatat silti tarvita git-haaraa -D branch_to_delete, ellei sitä ole täysin sulautettu esimerkiksi some_other_branchiin.
git checkout jokin muu_haara
git push -alku: branch_to_delete
git-haara -d branch_to_delete
Etäkarsintaa ei tarvita, jos poistat etähaaran. Sitä käytetään vain ajan tasalla olevien kaukosäätimien saamiseen seurattavassa arkistossa. Olen havainnut, että git-nouto lisää kaukosäätimiä, ei poista niitä. Tässä on esimerkki siitä, milloin git-kauko-luumu-lähtö todella tekee jotain:
Käyttäjä Asuorittaa yllä olevat vaiheet. Käyttäjä B suorittaa seuraavat komennot nähdäksesi ajan tasalla olevat etähaarat:
git noutaa
git kauko-luumu alkuperä
git-haara -r
|
Sain sairastua Googlen vastauksen kirjoittamiseen, joten otin samanlaisen lähestymistavan vastaukseen, jonka crizCraig lähetti aiemmin.
Lisäsin seuraavat Bash-profiiliini:
funktio gitdelete () {
git push -alku - poista $ 1
git-haara -D $ 1
}
Sitten joka kerta, kun olen valmis haaraan (esimerkiksi sulautettu masteriin), suoritan terminaalissani seuraavat:
gitdelete oma haara-nimi
... joka sitten poistaa minun haara-nimen alkuperästä sekä paikallisesti.
|
Ennen suorittamista
git-haara - poista 
varmista, että määrität ensin etäkonttorin tarkan nimen suorittamalla:
git ls-kaukosäädin
Tämä kertoo, mitä syötetään tarkalleen  -arvolle. (haara eroaa isoista ja pienistä kirjaimista!)
|
Käyttää:
git push origin: bugfix # Poistaa etähaaran
git branch -d bugfix # Paikallinen haara on poistettava manuaalisesti
Jos olet varma, että haluat poistaa sen, suorita
git-haara -D-virhekorjaus
Nyt puhdistaa poistetut etähaarat ajaa
git kauko-luumu alkuperä
|
1
2
Seuraava
Erittäin aktiivinen kysymys. Ansaitse 10 mainetta vastaamiseksi tähän kysymykseen. Maineen vaatimus auttaa suojaamaan tätä kysymystä roskapostilta ja vastaamattomuudelta.
Eikö vastausta etsit? Selaa muita kysymyksiä, jotka on merkitty koodilla git version-control git-branch git-push git-remote tai kysy oma kysymyksesi.